Typical computing systems, such as personal computers, portable phones netbooks etc, have architectures that comprise several logic circuits that concurrently use one or more shared resources. The access to the shared resource is controlled by an arbiter. The arbiter can receive access requests from one or more access-requesting circuits and apply an arbitration algorithm in order to determine which access request to grant. Examples of such an arbitration algorithm are a round robin arbitration algorithm, a prioritized arbitration algorithm, a weighted arbitration algorithm, and the like.
Examples of such a shared resource include a memory unit, a bus, an interconnecting circuit, and the like. Examples of an access-requesting circuit include a processor, a controller, a direct memory access (DMA) controller, a dedicated hardware and the like.
An access-requesting circuit can be requested to execute an application that requires a supply of data under a timing constraint. Examples of such a timing constraint may include a minimal data retrieval rate, a fixed data retrieval rate, a minimal response period and the like. Examples of such an application include video decoding, video displaying, real time applications and the like.
However, the access-requesting circuit may be unable to respect the timing constraint when the circuit does not obtain enough data from the shared resource. Such a violation may for example occur when the arbiter does not grant enough of the access requests for the access-requesting circuit or does not grant such access requests fast enough.